Engineering and metrology workspace

Every result leaves with a record someone else can re-derive.

Stack-ups, uncertainty budgets, capability studies and Gage R&R run here as pure functions: same inputs, same digits, no model in the path. Assemble the outcome into a verification record and it is sealed with a SHA-256 taken over its canonical content. Publish it and the reviewer recomputes that hash from the record itself, with no account and no copy of Olto. Move one character after sealing and the verifier says so, in red, above the record.

The artifact

This is what you hand the person who asks who checked it.

A verification record pairs each requirement with how it was proven and what came back. The workspace scores it on five weighted dimensions, serializes it to a canonical form, and seals that form. The part number and the initials below are invented. The grade, the weights, the dimension scores, the canonical bytes and the digest are not: they were produced bybuildVerification,canonicalize andsha256when this page was built.

Verification record

Pump housing, front bearing bore

Part PH-2210 · Rev C · Prepared by R. Aliu

82/100
Grade B, substantiated
Verification items: 3 pass, 1 fail, 1 not applicable
RequirementMethodStandardExpectedActualResult
Bore diameter, 52.000 to 52.030 mmInspectionISO 286-2, H752.000 to 52.030 mm52.014 mm mean over n=8pass
Bore to mounting face perpendicularityInspectionASME Y14.5-2018Within 0.020 mm0.017 mm maximumpass
Cover joint gap at assemblyAnalysisInternal STK-004, one-dimensional stackWorst case within 0.10 to 0.45 mmWorst case 0.06 mm; RSS 0.28 mm, half-spread 0.09 mmfail
Bore gauge capable over the 0.030 mm windowTestAIAG MSA 4th editionGage R&R at or below ten percent, ndc of five or moreGage R&R 8.4 percent, ndc 6pass
Anodize salt-spray resistanceTestASTM B117336 h with no white corrosionNot run on this revision; carried from PH-2110 rev BN/A
How the score was reached
Coverageweight 30%100
Resultsweight 30%75
Standards & specsweight 15%100
Review & sign-offweight 15%33
Identificationweight 10%100
Weighted total82
Seal, SHA-256 over the canonical form
21caaa74f464a501c4c5b0bd83f2b6bc42b23b96c7986b233059f2350298dfc0

Taken over 1,525 bytes of canonical JSON: fixed field order, trimmed strings, item order preserved. The locally generated item ids are left out on purpose, so the same record retyped on another machine seals to the same digest.

Re-derive it yourself

Save the canonical form below as record.json, then run this. It should print the digest above.

printf '%s' "$(cat record.json)" | shasum -a 256
Show the canonical form
{"project":"Pump housing, front bearing bore","partNumber":"PH-2210","revision":"C","preparedBy":"R. Aliu","checkedBy":"","approvedBy":"","notes":"Cover joint gap is the open item. The worst-case stack falls 0.04 mm below the minimum gap; the RSS result clears it. Disposition pending: either tighten the cover flange thickness or accept on an RSS basis with a written risk note.","standards":["ASME Y14.5-2018","ISO 286-2","AIAG MSA 4th edition","ASTM B117"],"items":[{"requirement":"Bore diameter, 52.000 to 52.030 mm","method":"Inspection","standard":"ISO 286-2, H7","expected":"52.000 to 52.030 mm","actual":"52.014 mm mean over n=8","status":"pass"},{"requirement":"Bore to mounting face perpendicularity","method":"Inspection","standard":"ASME Y14.5-2018","expected":"Within 0.020 mm","actual":"0.017 mm maximum","status":"pass"},{"requirement":"Cover joint gap at assembly","method":"Analysis","standard":"Internal STK-004, one-dimensional stack","expected":"Worst case within 0.10 to 0.45 mm","actual":"Worst case 0.06 mm; RSS 0.28 mm, half-spread 0.09 mm","status":"fail"},{"requirement":"Bore gauge capable over the 0.030 mm window","method":"Test","standard":"AIAG MSA 4th edition","expected":"Gage R&R at or below ten percent, ndc of five or more","actual":"Gage R&R 8.4 percent, ndc 6","status":"pass"},{"requirement":"Anodize salt-spray resistance","method":"Test","standard":"ASTM B117","expected":"336 h with no white corrosion","actual":"Not run on this revision; carried from PH-2110 rev B","status":"na"}]}

Read the review row. Every item here is fully specified, every one cites a spec, the part and the revision are identified, and the review dimension still scores a third of what it could, because nobody has checked this record and nobody has approved it. The scorer says so in its own words: a self-signed record isn’t a verified one. The open analysis item costs it separately. Neither can be talked out of, which is the point of putting the weights on the page beside the number they produced.

Publish a record and it gets a verifier page of its own. That page re-derives the digest from the stored content with the same functions used here, compares it to the stored seal, and when the two differ it says the record may have been altered, in red, above the record itself. The seal is computed on the server from the canonical record, never accepted from the browser that sent it.

The engine · measured August 2026

No model writes a number in this workspace.

A tool route here is one calculator or one instrument. Every one of them resolves to a library of pure functions with no network call, no clock and no randomness, and every one of those libraries has a test file. That is the whole mechanism, and it is countable.

61

tool routes, counted as one calculator or instrument each

61 of 61

sit on a module with unit tests. There is no untested calculator

51

distinct computation libraries behind them

3,500+

test blocks across those libraries

350+

source modules, excluding the test files

0

calls to a language model anywhere in that code

Stated with its scope attached, because the unscoped version would be false. That final zero covers the 61 tool routes, the 51 libraries behind them, and the server routes under the engineering API. It is not a claim about the product as a whole. Across the product, 31 of 454 server routes call a language model and the other 423 do not, and one protocol risk score elsewhere in Olto is a model assessment rather than a computation. The model drafts prose and narrates a result. It does not produce one.

Cp comes back empty when you give it one spec limit.

Cp is a two-sided index. Hand the capability engine an upper limit and no lower one and it returns nothing for Cp, and reports Cpk from the side that exists. A cell formula would have printed a number, and somebody downstream would have quoted it.

src/lib/engineering/spc.ts

Process Z and sigma level are two different numbers, and both are printed.

The process Z is the standard normal z whose two-tail defect probability equals the DPMO shown beside it, so the pair is always internally consistent. The Six Sigma sigma level is that Z plus the customary one-and-a-half sigma shift, and it is labelled with the shift so the two cannot be quietly swapped.

src/lib/engineering/spc.ts

The uncertainty budget wants a half-width, and it knows what a U-shaped one is.

Rectangular, triangular and U-shaped components enter as the half-width of their limits and are divided by the root of three, six and two. A component already quoted as a standard uncertainty enters with a divisor of one, and the divisor is overridable for the supplier who quotes an expanded uncertainty at a coverage factor of two. Effective degrees of freedom come from Welch and Satterthwaite.

src/lib/engineering/uncertainty.ts

Every calculator carries the equation it implements and the line where it stops.

Each card header names the formula or the standard, and a caveat sits under it. The PCB trace-width tool says on its face that it approximates the IPC-2221 charts and is conservative against the newer IPC-2152 ones, rather than presenting a width as settled.

src/lib/engineering/tools/types.ts

The index

Every instrument, with the status it actually has.

An unlabelled feature list implies that everything on it is equally finished. These carry the same status vocabulary the rest of this site uses, including the entries that are not built. Each row names the route it lives at and the module a reader can open to check the description against.

Metrology and verification

Measurement uncertainty budget

Generally available

Components reduced to standard uncertainties by their assumed distribution, combined as a root sum of squares, expanded by a coverage factor, with effective degrees of freedom from Welch and Satterthwaite. Implements the GUM (JCGM 100:2008).

/dashboard/engineering/uncertainty · src/lib/engineering/uncertainty.ts

Statistical process control and capability

Generally available

Cp, Cpk, Pp, Ppk and Cpm plus sigma level, DPMO and yield over ungrouped data, and X-bar and R control limits from the standard SPC constant tables.

/dashboard/engineering/spc · src/lib/engineering/spc.ts

Gage R&R

Generally available

Measurement system analysis by the AIAG average-and-range method: equipment variation, appraiser variation, their combination, part variation, number of distinct categories, and the precision-to-tolerance ratio against a stated spec window.

/dashboard/engineering/gage-rr · src/lib/engineering/msa.ts

Tolerance stack-up

Generally available

One-dimensional linear stack computed both worst-case (arithmetic) and RSS (statistical), with asymmetric tolerances, direction, an optional fit check, and each dimension ranked by its share of the spread.

/dashboard/engineering/tolerance · src/lib/engineering/tolerance.ts

Bill of materials roll-up

Generally available

Multi-level quantity roll-up: a line quantity multiplied through every parent assembly above it, with extended cost and mass totals.

/dashboard/engineering/bom · src/lib/engineering/bom.ts

Requirements traceability matrix

Generally available

Each requirement paired with its verification method (test, analysis, inspection, demonstration) and status, rolled up into coverage (how many requirements have a method assigned) and closure (how many are verified to a closed state).

/dashboard/engineering/rtm · src/lib/engineering/rtm.ts

Sealed verification record

Generally available

A verification bundle scored for readiness on a weighted completeness scale, then serialized to a canonical form and sealed with a SHA-256 the browser computes via Web Crypto. Re-derive the hash from the same content and it matches.

/dashboard/engineering/verification · src/lib/engineering/verification.ts

Reference and conversion

Engineering calculators

Generally available

20 registry calculators across mechanical, structural, electrical, signals, thermal and fluid work, each its own module with its own test file and its formula on the card.

/dashboard/engineering/calculators · src/lib/engineering/tools

Unit converter

Generally available

Length, force, pressure, torque, energy, power, flow, velocity, angle and temperature, showing the whole table for a category at once rather than one conversion at a time.

/dashboard/engineering/units · src/lib/engineering/units.ts

Materials reference

Generally available

Density, elastic modulus, yield and tensile strength, coefficient of thermal expansion and thermal conductivity for common metals, polymers, ceramics and composites.

/dashboard/engineering/materials · src/lib/engineering/materials.ts

Fasteners and threads

Generally available

Tap-drill, pitch, clearance-hole and hex sizes for metric ISO and imperial UNC and UNF threads.

/dashboard/engineering/fasteners · src/lib/engineering/fasteners.ts

Standards Library

Generally available

490+ seeded records spanning ASME, ISO, IPC, IEEE, ASTM, AISC, IEC and MIL-STD, each with its scope and its key requirements. The finder that maps an experiment to candidate standards is the one route in this tree that calls a model; the library itself is a lookup.

/dashboard/utilities/standards · supabase/migrations, standards seed files

Subject calculators, physics and engineering

Generally availableeach on its own route, each on a tested module
  • Physics Toolkit
  • Signal & FFT
  • Circuit Simulator
  • Thermodynamics
  • Optics & Photonics
  • Structural & Beam
  • Fluid Mechanics
  • Reliability & Quality
  • Radiation & Nuclear
  • Acoustics & Audio
  • Astronomy
  • Fatigue & Fracture
  • RF & Antenna
  • Heat Transfer

The same workspace holds 36 more subject calculators outside physics and engineering, across chemistry, biology and genomics, earth and environment, statistics and applied lab work. They are listed on the product side rather than here, because breadth is not the argument on this page.

On the roadmap, not built

Bench-test runner

Planned

Executing a test plan step by step against the record it belongs to. On the roadmap, not built.

Calculation and test-plan drafting

Planned

A drafting aid for the plan itself. On the roadmap, not built. If it ships it will draft the plan; the values will still come from the engines above.

Where this stops

Here is what the seal does not do.

Every claim above is narrow on purpose, so the edges are worth writing down rather than leaving for a reader to find at the wrong moment.

A seal is not a signature.

The hash establishes that the content did not change after sealing. It does not establish who wrote the record, that the person named as checker ever read it, or that the engineering underneath is right. It is a content address, and treating it as an identity claim would be the same overstatement this page exists to avoid.

Determinism is not correctness.

A pure function can be reproducibly wrong. A number out of this workspace stands on three legs: it names the standard or the formula it implements, it is unit-tested against that source, and you can recompute it. The seal is the third leg only.

The stack-up engine is one-dimensional and linear.

It computes a worst-case and an RSS result along a single axis, with asymmetric tolerances, a direction per dimension, an optional fit check and a ranking of which dimension owns the spread. It does not model GD&T material-condition modifiers and it is not a variation simulation. Where the geometry is not a linear chain it is the wrong instrument, and it will not warn you.

Publishing is opt-in, and a published record is link-only.

A sealed record stays private until you publish it. A published one is served to anyone holding the link and is marked not to be indexed, so it is shareable rather than discoverable. Sharing a link is the act that makes a record checkable, and it is yours to take.

There is no API to push a calculation in from your PLM.

There is no public or programmatic API yet. Data moves in and out as CSV and JSON, and the bill of materials and the requirements matrix both round-trip that way, but there is nothing to build an integration against.

The calculators are free. Sealing a record is not.

Running any instrument on this page costs nothing and needs no plan. Saving, sealing and exporting a record sits on the Researcher plan, priced on the pricing page with no quote and no call.

The same seal-and-recompute pattern runs on the public engine registry, where every sealed scientific engine re-runs on page load and prints both hashes when one drifts, and plans are priced in full on the pricing page.

Seal one, and send it to whoever checks it.

The no-signup demo generates a protocol from your own sentence and hands back a record with this same property: scored by a published rule, and re-derivable by someone who was not in the room. The engineering workspace is that idea with an uncertainty budget attached.

Try OltoOpen the engine registry