Blog· Trust
Every Number Has a Source — Evidence IDs, Acceptance Recomputation and Numerical Trust
When the AI reports a number, how do you know it isn't made up or out of date? The evidence id traces back to that real computation, and acceptance is recomputed independently with fixed standard sampling.
The LensBench TeamOct 17, 2026 · 3 min read
When the AI reports a number, how do you know it isn't made up or out of date?
Evidence ids
Every analysis result carries an evidence id, determined jointly by the model (the prescription and the resolved glass refractive-index data), the engine version, the kind of analysis and the sampling parameters. When the AI reports a number it must attach the evidence id, so you can trace the number to the real computation it came from; once the design has changed, old evidence is marked stale. The frame of a publication-quality figure also has the evidence id printed on it.
When writing a report, pack exports the report material in one go (figures, numbers pages, prescription / first-order / acceptance / manufacturability tables); once the report draft is written, check_report checks the numbers one by one against the evidence ids cited in the sentences. See the report pack.
Acceptance is kept separate from optimization
- Your targets are written as specs, and optimization goals as a merit function; the two are kept separate.
verifyindependently recomputes every spec with fixed standard sampling. It does not trust the optimizer's self-reported "how much it improved": the optimizer saying things got better on its own sampling does not mean they got better by your acceptance convention. After changing a design, go by verify's verdict.- Quantities with dimensions must carry units (
10um,2%,13deg), and ones without units are rejected outright.
Can the computation itself be trusted
The following are the conclusions of the validation report of 2026-10-16; for the latest numbers see the validation report:
- Analytic golden references: all 42 checks pass, with expected values computed by independent formulas without calling LensBench.
- Ray-by-ray reconciliation against an independent implementation: 29 open-source sample designs were rebuilt by round trip; for 27 of them the paraxial quantities and ray landing points match (tolerance 1e-9), and the other 2 are convention differences whose causes have been identified.
- The item-by-item comparison with Zemax is still being filled in. Until then, we will not say "fully equivalent to Zemax".
Update of 2026-10-17: the comparison with Zemax has its first results: 3 comparison designs (Cooke triplet, 45° fold mirror, tilted plate) with 33 items in all, with expected values taken directly from Zemax and not passing through LensBench; first-order quantities, real rays, wavefront, spot size, aberrations and MTF are all within tolerance. The several convention differences found in the comparison were changed to agree with Zemax, and when an old file with Seidel operand targets is opened, you are prompted to convert them. Some settings have not been fully checked yet, so we still do not say "fully equivalent to Zemax". For the latest numbers see the validation report.
Keep reading
- Philosophy
The Design Philosophy of LensBench — Built for AI-Native Workflows
The biggest difference from other optical software is not an added chat box, but that, starting from the data model, it is designed for people and AI changing a design together.
The LensBench TeamOct 17, 2026 · 3 min read
- Philosophy
A Design Is Just Text — Why .lens Is the Foundation of AI-Native
The entire state of a lens is a piece of .lens text. The AI can read it and write it, and every change is a visible diff.
The LensBench TeamOct 17, 2026 · 2 min read
- Philosophy
One Command Table — What the AI Can Do Is What You Can Do
The same command is, at once, an action in the desktop app, a subcommand of the command line, and a tool the AI calls. The AI has no hidden channel.
The LensBench TeamOct 17, 2026 · 2 min read