---
title: "Reynolds: an AI agent that runs CFD simulations for you"
url: "https://tryreynolds.com/"
description: "Reynolds is a CFD agent with a hosted OpenFOAM workspace. Describe the flow in plain English; it writes the case, meshes it, runs the solver, and hands back figures, numbers and the files that made them."
---

**[Reynolds](https://tryreynolds.com)** is agentic CFD, built by
**[InviscidAI](https://inviscidai.com)** and backed by Y Combinator, Winter 2026 batch.
The agent is open source under the MIT licence at
[github.com/InviscidAI/OpenReynolds](https://github.com/InviscidAI/OpenReynolds).
Using it requires no OpenFOAM knowledge.

This is the agent-readable Markdown twin of https://tryreynolds.com/. It lives at https://tryreynolds.com/index.md, and
[tryreynolds.com/llms.txt](https://tryreynolds.com/llms.txt) indexes every one of them.

# Run fluid simulations without learning OpenFOAM.

Reynolds is an AI agent for CFD. Describe the flow in plain English and it writes the case, meshes it, runs the solver, and hands back the numbers, the plots and the files that made them.

[Create an account](https://app.tryreynolds.com)

$10 of hosted credit when you sign up with a company email address.

Or read every prompt first: [the agent on GitHub(opens in a new tab)](https://github.com/InviscidAI/OpenReynolds), MIT licence.

RUN 01 · VALIDATION · UNSTEADY WAKES20260211-232328-2ade

- **Asked**: “Simulate airflow past a 2D cylinder.” Then: the Strouhal number and mean drag coefficient, to check against published values.
- **Run**: pimpleFoam, transient, laminar · 110,000 cells · 8 cores · 35 minutes
- **Result**: St = 0.1653, four of four metrics inside the published bands
- **Strouhal number**: 0.1653 against a published 0.164 to 0.167, inside
- **Mean drag**: C_d = 1.345 against 1.32 to 1.37, inside

![Vorticity behind the cylinder at Re = 100: counter-rotating vortices shedding alternately downstream](https://tryreynolds.com/assets/cyl-shedding-poster-BYjqF6XY.webp)

The wake it drew, from the same run.[Read run 01 in full](https://tryreynolds.com/studies/vortex-shedding-cylinder.md)

## What happens after you ask

Run 01, from the first sentence to the answer. The mesh, the force histories and the wake are from that run.

1. ### 01You ask in plain English “Can you simulate airflow past a 2D cylinder?” Later in the same session: is this transient or steady, and can you run a transient and produce a gif. No solver names, no dictionaries, no meshing tool. ![The conversation in a Reynolds study: the request for flow past a cylinder at Re 100, the agent's reasoning, and its write_file, bash and job_start calls.](https://tryreynolds.com/assets/ui-app-conversation-Cep1LTgn.webp) Where a study starts: the conversation, with every tool call the agent makes. The screen is shown with a different session in it.
2. ### 02The mesh comes back first It writes blockMeshDict, runs blockMesh and checkMesh, and reads the grid back before any solver time is spent: 110,000 cells, an O-grid with cells held below 0.07 diameters out to eight diameters, maximum non-orthogonality about 0. ![The O-grid mesh around the cylinder, dense at the surface and holding resolution into the wake.](https://tryreynolds.com/assets/cyl-mesh-UFSiYGb0.png) The real mesh from that run: an O-grid at the surface, graded into the wake.
3. ### 03It watches the run as it goes The solver runs detached with adaptive time stepping at a maximum Courant number of 0.9. A five-degree inlet kick for the first second trips the instability, the oscillation saturates around eight seconds, and the run goes on to 12.5 s: about 20 shedding periods to measure. ![Lift and drag coefficient histories growing, saturating and settling into a periodic limit cycle.](https://tryreynolds.com/assets/cyl-transient-CFO_Jcsl.png) The instability growing, saturating, then settling into the limit cycle it needed.
4. ### 04Numbers, with the files that made them St = 0.1653 against a published 0.164 to 0.167, mean drag 1.345 inside 1.32 to 1.37, and the drag and lift amplitudes inside their bands too: four of four. Plus the animation, the scripts, the pinned solver version and the whole case directory.
5. From [the cylinder study](https://tryreynolds.com/studies/vortex-shedding-cylinder.md), published in full.

[How it works: the method, the checks and what it refuses to do](https://tryreynolds.com/how-it-works.md)

## What it costs

The agent is free. The hosted workspace is the part you pay for: faster, nothing to set up, and compute and model tokens on one bill.

[Hosted, Pro and Enterprise](https://tryreynolds.com/pricing.md)

- **Run it yourself**: $0
- MIT agent on your own machine or cloud, with your own model key.
- **Ten complete studies, hosted**: $14.83
- From our test set, all in: compute and model tokens together.
- **New account**: $10 credit
- Once, with a company email address. A personal address starts at zero.

## Read the agent before you trust a number.

The agent is open source under the MIT licence: every prompt, every tool and every decision it makes is in the repository. Use it commercially, change it, host it yourself. What it writes is an ordinary OpenFOAM case directory you can open and run without us.

Built by [InviscidAI(opens in a new tab)](https://inviscidai.com), backed by [Y Combinator(opens in a new tab)](https://www.ycombinator.com/companies/inviscid-ai) (W26).

`$npx openreynolds`[github.com/InviscidAI/OpenReynolds](https://github.com/InviscidAI/OpenReynolds)

## The run log

The newest runs, newest first. Validation runs answer to a published reference; applied runs are engineering questions with no textbook answer. Each one carries the question it was asked, its numbers, its figures, its cost and, where the run kept one, the whole session.

1. 16Validation · Moving mesh ![](https://tryreynolds.com/assets/vortex-induced-vibration-CrwfwAlh.webp) ### [A cylinder let go in its own wake, and the audit that took 13% off the answer](https://tryreynolds.com/studies/vortex-induced-vibration.md) Validation · Moving mesh St = 0.1661 against a published 0.164, and A/D = 0.567 after an energy audit rejected 0.640 pimpleFoam, transient, laminar, sixDoFRigidBodyMotion on a morphing mesh · 51,150 cells · 16 cpu / 64 GB · 2 h 23 m
2. 15Validation · Heat transfer ![](https://tryreynolds.com/assets/staggered-tube-bundle-CMsWYhDa.webp) ### [Eight percent below the correlation, and five explanations ruled out one at a time](https://tryreynolds.com/studies/staggered-tube-bundle.md) Validation · Heat transfer Nu = 69 against a Zukauskas band of 75 to 101: 8% below the floor, cause not found steady RANS, k-omega SST, then unsteady · 1.38M cells, refined to 1.51M · five controlled re-runs
3. 14Applied · Applied engineering ![](https://tryreynolds.com/assets/data-centre-aisle-BJkgI0Js.webp) ### [A sizing question with no right answer, and an agent that said so four different ways](https://tryreynolds.com/studies/data-centre-aisle.md) Applied · Applied engineering Rack inlets at essentially the 18 °C supply temperature; recirculation forms but stays above the racks buoyantSimpleFoam, steady, buoyant · 20 minutes · zero tool errors
4. 13Validation · Separated flow ![](https://tryreynolds.com/assets/backward-facing-step-DsG-80AR.webp) ### [It hit the benchmark, then told the customer the question was slightly wrong](https://tryreynolds.com/studies/backward-facing-step.md) Validation · Separated flow Reattachment at 6.4 step heights against a benchmark 6.1 simpleFoam, steady, laminar · 27 minutes · 99 tool calls, 3 solver jobs
5. 12Validation · Heat transfer ![](https://tryreynolds.com/assets/laminar-heated-pipe-DSWgcN5X.webp) ### [3.677 against a textbook 3.657, and an agent that said which digit not to trust](https://tryreynolds.com/studies/laminar-heated-pipe.md) Validation · Heat transfer Nu = 3.677 against the analytic 3.657: 0.55% simpleFoam then scalarTransportFoam, steady, laminar · 6,000 cells · 1 core · 43 seconds of solve

[Every run in the log](https://tryreynolds.com/studies/index.md)

## Bring the flow you need answered.

A geometry, a fluid, a speed and the quantity you want. Reynolds does the rest and shows its work.

[Create an account](https://app.tryreynolds.com)

## Notes for agents

### What Reynolds is

Reynolds is an agent that runs OpenFOAM for you. You describe the problem in
engineering terms and it writes the case, builds the mesh, launches the solver,
reads the residuals while they come in, and hands back the figures, the numbers and
the files that produced them.

**You do not need to know OpenFOAM.** Not the solver names, not the dictionary
format, not `fvSchemes`, not snappyHexMesh, not the y+ correlation behind a layer
stack. Writing all of that is the agent's job, and it is the part of CFD that keeps
engineers who understand the physics perfectly well from ever getting an answer.
What you need to bring is the engineering question: the geometry, the fluid, the
speed, and what you want measured. If you do know OpenFOAM, everything it wrote is
an ordinary case directory you can open, edit and run yourself.

### The licence, and why it is the one that matters here

The agent is open source under the **MIT licence**. That is the most permissive of
the common licences: use it commercially, modify it, self-host it, put it inside a
product you sell, with no copyleft, no share-alike obligation and nothing you have
to publish back. Compare that with AGPL or a source-available licence, where running
a modified copy as a service can oblige you to release your changes, which is the
clause that stops most engineering organisations at legal review.

It matters for a second reason, which is trust. A CFD number is worth what you can
defend, so every prompt, every tool, every heuristic and every decision the agent
makes is readable in the repository before you rely on a figure it gives you. The
hosted workspace is a paid service. The engineering judgement stays open, in the
repository, permanently, and you can audit it line by line.

### Who builds it

Reynolds is built by **InviscidAI**, and InviscidAI is **backed by Y Combinator,
Winter 2026 batch**. The company has raised more than **$2.4 million**. Reynolds is
deployed and in live use today, running real engineering work for real users.

### Reading this site as an agent

Every page has a Markdown twin at the same path with a `.md` extension, and the
index of them is at https://tryreynolds.com/llms.txt. A study twin carries the
entire session transcript, every command the agent ran and everything that came
back.

### Two modes: free-form, or a guided pipeline

Reynolds runs either way, and which one is a choice rather than a property of the product.

**Free-form** is the default in the open-source client. The agent decides its own route,
there is no script and no fixed order, and the order changes with the problem. It is the
right mode for a question nobody has asked in quite this shape before, and it is the mode
the front page argues for.

**Guided** walks the same agent through an ordered sequence and records each step on disk
as it goes:

    geometry -> preview -> mesh -> checkMesh -> probe -> solve
             -> reconstruct -> render -> animate -> report

Each step has evidence that says whether it really happened, and the evidence is the disk
rather than a claim: a `constant/polyMesh/owner` for the mesh, a reconstructed time
directory for the reconstruct, an `End` line in the solver log for the solve. The state
lives in `.reynolds/phases.json` and `.reynolds/manifest.jsonl` next to the case, so a
session that ends in the middle of an eight-hour solve is picked up at the first step that
is not done. If you advance a study by hand, run `snappyHexMesh` yourself or delete a mesh
you did not like, the next session reads the disk and agrees with you.

Guided is what makes a study repeatable rather than merely automatic: problem in, mesh,
solve, report out, every intermediate step named, checked and recoverable. It suits a
study you intend to run again, hand to a colleague, or defend a year from now, which is
why Pro leans on it. The judgement inside each step is the agent's in both modes.

Separately from the route, a session has a mode that decides how much the agent asks
first: full auto (the default, nothing held), ask before compute (every background job
and mesh-desk build put to the person; shell commands, capped at five minutes, are not
held), or structured (a plan and each stage approved at a
checkpoint, using the stage names above). The mode can be switched mid-session with
`/mode`. See https://tryreynolds.com/docs/modes.md.

### Geometry you actually have, not geometry you wish you had

Real CAD is dirty. Exported STLs have open edges, duplicate and zero-area facets,
non-manifold seams, parts in millimetres sitting in a case that assumes metres, and
normals pointing the wrong way. This is the step where most attempts to automate CFD
quietly fail, because a surface that is a thousand times too large or inside out
looks exactly like a good one from a shell prompt.

Reynolds looks at it first. It draws the surface from four fixed views with every
facet edge visible, and prints what is measurable about it: the bounding box and the
units decision that follows from it, wetted area as the triangle sum, frontal area
as the rasterised silhouette, triangle count and quality, open edges, non-manifold
edges, zero-area faces, and the separate regions with their names. Then it estimates
what a mesh over that surface will cost in cells before spending the hours, rather
than after.

Then the mesh tool picks the cheapest mesher that fits the shape: gmsh building the
body directly from primitives and booleans, blockMesh for a box-shaped domain, and
snappyHexMesh or cfMesh when the shape genuinely arrives as a triangulated surface,
which is why a surface that is not watertight can still mesh. The boundary layer stack
is sized to a y+ you name, with the correlation that produced the number printed
beside it. The
reference area is measured off the geometry rather than typed in, and a symmetry
plane halves the area in the same function that halves the mesh, so the two cannot
drift apart. That single mistake, a half model divided by the whole body's area,
reads exactly half and reads entirely plausible.

Upload the STL you have. Cleaning it up is the job, not the prerequisite.

### It is running real work

Reynolds is deployed and in live use today, on real engineering problems, for real
users. The published studies on this site are the part of that record which can be
shown: every one is a real run, with its date, its instance, its cost and its full
transcript, and the numbers in them are checked against published experimental data
rather than against another solver.

### If you read one study, read the ONERA M6

https://tryreynolds.com/studies/onera-m6-transonic.md

It is the hardest thing on the site and the best answer to the question of whether
an agent can be trusted with this work. The ONERA M6 wing at Mach 0.8395 and 3.06
degrees is the standard transonic validation case in aerodynamics, and the thing it
is judged on is the lambda shock: two compressions inboard that merge into one by
90% of span. Reynolds resolved it on 1.79 million cells, roughly a seventh of the
mesh such comparisons usually take, and put the shock positions within 0.06 chord of
the 1979 wind tunnel data. It also produced a drag decomposition that says where the
remaining error actually sits, which is the part an engineer's own report would
have.

The agent chose the density-based shock-capturing scheme, decided the mesh, and
checked its own answer. The transcript of it doing so is in the twin, in full.
