live on your cluster

Your simulations fail.
Courant finds out why.

An AI agent that watches your CFD runs, diagnoses failures, fixes them, and verifies the physics.

openfoam first · trust every run

0%
root causes found
0%
broken runs fixed, zero human input
<0s
failure → diagnosis
0
public benchmark cases
the problem

Runs die at night.
You find out Monday.

Fri 18:42

You launch a 20-hour run and go home.

Fri 23:17

It diverges at hour 5. Nobody sees it.

Sat → Sun

The cluster sits idle. The design decision waits.

Mon 09:04

You find the corpse. Now the debugging starts.

Courant deletes the gap.
Days → seconds.

see it happen

Watch a run die.
Watch Courant bring it back.

courant-film.mp4 · 1600×900 0:45
45 seconds · sound on
the whole story: why runs fail · what courant does · what you get back press esc to stop
how it works

One loop, always on.

/1 Watch
/2 Diagnose
/3 Fix
/4 Verify
/5 Report

Watch

Divergence caught within iterations — not on Monday.

event stream · liveheatExchanger_v3
t=0.240RESIDUALp 3.1e-5 · steady decay
t=0.280CHECKPOINTstate written · restartable
t=0.305WARNCourant number rising · Co 4.7
t=0.310DIVERGENCEp residual +3 orders in 12 iters
t=0.310INTERVENEsolver paused · diagnosing

Diagnose

Every diagnosis ships with its evidence. Line numbers included.

diagnosis card · #0412confidence 0.94
◈ ROOT CAUSE

Timestep exceeds CFL limit after mesh refinement

log:2841Courant Number max: 41.2
controlDict:23deltaT fixed · adjustable off
checkMeshmin cell Δx down 8× vs. last mesh
✓ apply fixeditdismiss

Fix

A minimal diff — never a rewrite. Restart from the last checkpoint.

system/controlDict−2 +3 · applied by courant
@@ time controls @@
- deltaT 1e-3;
- adjustTimeStep no;
+ deltaT 2.5e-4;
+ adjustTimeStep yes;
+ maxCo 0.8;

Verify

Convergence isn't correctness. Code decides the grade — not the model.

physics audit5 checks
mass flux balance 0.02%
energy budget 0.4%
y+ vs. wall treatment 98.7% valid
residual levels < 1e-5
ATRUST GRADE

The grade travels with the result — every deduction links to evidence.

Report

Every incident becomes an engineering record.

run report · #0412auto-generated
COURANT · RUN REPORT
Diverged at t=0.31 → recovered → converged in 6.2h. Trust Grade A.
cause: refined mesh dropped stable Δt ~8× · fix: adaptive timestepping
next: sweep inlet 2–6 m/s · check outlet plenum before finalizing
the bench

Don't trust us.
Trust the benchmark.

60 real broken OpenFOAM cases. Held-out scoring, run nightly, misses published.

the-bench · nightly ci run #142 · passing
cavity_cfl_x20 NUM.CFL_VIOLATIONfixed · 12s
pitzDaily_outlet_fixed BC.OVER_CONSTRAINEDfixed · 31s
heatEx_relax_099 NUM.RELAXATIONfixed · 47s
cavity_no_init NUM.BAD_INITIAL_FIELDfixed · 09s
motorBike_skew_core MESH.SKEWNESSdiagnosed · 64s
chtMulti_thermo_mismatch PHYS.THERMO_INCONSISTENTfixed · 53s
60 cases · 20 held-out · full case list, methodology and misses public bring your own broken case →

Shivanshu Dwivedi

founder · physics × ML × agentic systems

The slowest part of simulation was never the solver — it was the debugging.

early access

Get Courant watching your cluster.

Bring a case that's burned you. That's the whole application.

✓ request logged — we'll reply with a broken case you can watch it fix

✕ couldn't log the request — email us directly: shivanshudwivedi.work@gmail.com

trust every run.