SMRFORGE

Reactor-physics evidence

A simulation output is a claim. A reviewer has to be able to check it.

Reactor physics
you can prove.

SMRFORGE takes a small modular reactor from concept to a full-core k-effective — and seals each result so anyone can verify it offline and re-derive it from scratch on the open engine. You don't have to take our word for it.

Engagements are open now — bring a number and we’ll produce the reproducible evidence with you. The Community engine is open source and available today; Pro is in commercial beta.

Evidence bundle · smrforge.result.v1
1.029554k_eff
fidelity: screening · code-verification
caseIAEA-2D · full core
published referencek = 1.029585
C−E−3 pcm
data libraryendf/b-viii.1 · sha ✓
seal (sha-256)4c1a 7f… 9e02
signatureed25519 ✓
$ smrforge verifyINTEGRITY OK ✓

Work with us

Bring us a number a reviewer won’t take on faith.

Most of our work starts as a scoped engagement — we produce the evidence with you, and you leave with sealed bundles a reviewer can re-run. For an SMR developer heading to the NRC, or a team that needs an independent confirmation before a submission, that’s the work.

Flagship engagement

Independent confirmatory analysis

Send us your criticality or shutdown-margin number. We re-derive it on the open engine and OpenMC and hand back a signed, reproducible confirmation your reviewer can re-run — a second opinion that checks itself, not one they have to trust.

Bring us a number →
You senda k_eff / shutdown margin
We returna sealed, re-runnable bundle
Your reviewerre-derives it, offline

More ways to engage

Packaging

Evidence packaging

A number from Serpent, MCNP, or your own tools — shipped as a sealed, verifiable, reproducible bundle so it travels to a reviewer intact.

V&V

Pre-submission V&V

Code-verification, a V&V matrix, and the benchmark evidence a regulator reads — stood up, sealed, re-runnable.

Integration

Integration & converters

Serpent/MCNP converters for codes you license, and MCP/REST wiring into your — or a lab’s — pipeline.

Lab collaborations and academic partnerships welcome — we’ll scope the work to fit.

How an engagement works

From your number to a reviewer’s re-run.

1

Bring a number

Your k_eff, shutdown margin, or a result from any code.

2

We re-derive it

On the open engine, escalated to OpenMC where it has to hold up.

3

You get a sealed bundle

Signed, with the data pinned and the lineage recorded.

4

Your reviewer re-runs it

Offline, with a checker that imports none of our physics.

How you check it

Two ways to catch us, both on your machine.

Integrity is one command; re-deriving the number is a separate, deeper one. Neither needs a network, and neither trusts us.

$ smrforge verify

Verify offline

A standalone checker confirms the record is intact, complete and signed — and it imports none of our physics, so a pass isn't us grading our own work.

$ smrforge reproduce

Reproduce it

A signature can't catch a signed lie. This re-runs the open engine on the record's own recorded inputs and checks the number comes back.

sealed provenance

Pinned data & lineage

Each bundle names the nuclear data it read by content hash, and the steps a composed number was built from. Alter the graph and the seal breaks.

Evidence Watch · early access

A sealed result can go stale without anyone touching it.

Nuclear-data libraries get revised and engines get upgraded. A number that re-derived cleanly last year may not re-derive on today's library — which means the sealed claim quietly stops matching the world. A one-time check can't catch that. Evidence Watch can.

We watch on a cadence

SMRFORGE re-runs the check against your sealed bundles on a schedule, and flags the moment a result stops reproducing — or the data library it was sealed against changes underneath it.

We re-attest what still holds

For a bundle that still holds, we re-sign it with the production origin key — the one signature you can't produce yourself — so your evidence stays current, not just archived.

You hear about drift first

If something stops holding, you get told, with the specific reason, before a reviewer or regulator runs into it.

Evidence Watch is in early access. We're taking a small number of design partners while we finalize how it runs on your side. If keeping a body of licensing evidence provably current matters to you, get in touch.

Verification, honestly labeled

Numbers you can look up.

These are code-verification closures — the engine checked against analytic solutions and published benchmark references, not against measured experiments. Screening-grade by design, and every row re-runs from its own bundle.

AnchorCompared againstResultFidelity
IAEA-2D full corek = 1.029585C−E ≈ −3 pcmscreening
Bare-cylinder R-Zanalytic k(B²)< 2 pcmscreening
Infinite-medium k∞closed-form 2-group≤ 1 pcmscreening
In-tree CE Monte CarloOpenMC (matched free-gas)≈ +108 pcmscreening
Criticality (OpenMC)continuous-energy MCre-derives in ±3σlab

pcm = per cent mille (10⁻⁵ Δk/k). This is verification (vs analytic / published references), not validation (vs measured experiments) — validation against measured critical experiments is the Pro measured-anchor lane. Screening k-eff is a trend, not a validated absolute.

The fidelity ladder

Screen fast, escalate the same inputs.

Every method here runs today. The in-tree engine is screening-grade by design; the graded reference tier is the sealed OpenMC escalation — a field-validated code, cited, reproduced through our evidence spine. Accuracy is OpenMC's; the auditable evidence is ours. Reference is earned per domain — live today for LWR-lattice and LEU-solution criticality.

rung 1 · screening
Nodal / NEM

Full-core diffusion, in-tree.

rung 2 · screening
Sₙ / SP₃

Transport on the same set.

rung 3 · screening
CE Monte Carlo

Continuous-energy, in-tree — screening-grade.

rung 4 · reference / lab · free
OpenMC

Same inputs, a field-validated eigenvalue — sealed and reproduced through our spine. The graded reference tier lives here, earned per domain.

Run it yourself

The engine behind the work — free, and yours.

Community
MIT · open source

The whole screening engine and evidence spine — the same tools we run in an engagement. Free, MIT.

  • Full-core diffusion, NEM, Sₙ/SP₃, CE Monte Carlo
  • One-step OpenMC escalation, free
  • Sealed bundles, standalone verifier, reproduce
  • Verifiable redaction, data-library provenance
Pro
FSL-1.1-MIT · commercial beta

Our engagement work, productized: the PASS/FAIL assurance package, run in-house at scale.

  • Signed assess deliverable: PASS / FAIL vs the safety floor
  • Coverage (c_k trending) against measured anchors
  • Freshness monitor & signed evidence reports
  • Serpent / MCNP converters on engagement

Install is source-only, by design. git clone https://gitlab.com/smrforge/smrforge.git, then pip install -e . — Python 3.11+, pure standard library, no dependencies. It is not on PyPI, on purpose: the engine is built for air-gapped and regulated environments, so what you install is the source tree you can read, never a package index. Full walkthrough: Getting started →

$ smrforge run physics:nodal --preset lwr-smr-2g --enrichment-pct 4.5 --core-size-cm 200

Command line

One flag per declared input. smrforge tools lists the open capabilities and smrforge schema <card> prints one card's inputs; a missing or misspelled input is a named error, not a stack trace. The output is a sealed evidence bundle.

run_capability("physics:nodal", inputs)

Python

Register the open cards, call run_capability(name, inputs), and get the result and the same sealed bundle back — the same input checks, the same record.

$ smrforge serve

REST + MCP, on your machine

A standard-library HTTP server bound to 127.0.0.1. POST a JSON body to run a card and the response is the bundle; the same server speaks MCP to an AI agent. No web framework, no network fetches.

What runs where. The in-tree engine is screening-grade and runs anywhere Python does. The lab-grade OpenMC path needs a real OpenMC install and a continuous-energy cross-section library on your host — without them those cards refuse, rather than fabricate a number. The getting-started guide covers that setup.

Talk to us

Bring a number you need a reviewer to believe.

We'll show you the same result as a sealed bundle you can verify offline and re-run yourself. Pilots and Pro: support@smrforge.io.

Email us →