Skip to content
← All posts

Engineering with AI: Making Errors, Keeping the Lessons

Our paper for Viennahydro 2026: how we computed two distributors for Pelton turbines with an AI, which 17 errors happened along the way and what they taught us about working together with artificial intelligence.

That is the title of our paper for Viennahydro 2026. In it, Josef and Philipp Erlach report how they computed two distributors for Pelton turbines with an AI agent, what went wrong and what remains. Philipp Erlach will give the talk on 20 November 2026 in Laxenburg near Vienna.

The question: what can we afford to investigate?

As a small company we want to be able to ask questions, run rounds and even go down wrong paths. In 2020, computing one distributor in five variants at an institute cost us 25,000 euros in external costs. Can we investigate such questions faster and at lower cost with AI, and how reliable are the answers?

To judge that, you need a case you know. So we chose our own development, the Pelton turbine System Erlach with up to six nozzles on a horizontal shaft.

The experiment

Josef Erlach is the designer. He draws the distributors and decides on changes. Philipp Erlach is the AI engineer. He directs the agent and builds the system of rules, filing and checks the agent works in. The agent is Claude Code by Anthropic. It builds the models and operates the flow solver OpenFOAM.

We computed two distributors for a head of 430 metres: distributor A with five nozzles, distributor B with six. The question was how the water divides between the nozzles, and whether the same amount flows to the left and right of the guide vanes in each nozzle. That decides whether the jet stays straight.

What came out

31 runs on a notebook, just under six hours in total. The first flow pictures arrived 18 minutes after the first request. We estimate the external cost for this project at under 100 euros. The institute delivered more in 2020: five variants with nozzles, a mesh study and a report. What counts for us is that we can now investigate further questions at low external cost.

As a check, we recomputed a distributor that TU Wien had computed in 2020. Without nozzles, the largest deviation of our values from the institute’s three computations lies between 1.1 and 1.5 percent. The institute’s three computations differ from one another by 1.3 to 1.6 percent. Our result lies within their scatter.

Who computed Cells Pipe 1 Pipe 2 Pipe 3 Pipe 4 Pipe 5 Pipe 6
TU Wien 0.46 M 3.167 2.935 2.709 2.819 2.913 3.006
TU Wien 2.0 M 3.126 2.928 2.678 2.794 2.894 3.003
TU Wien 8.7 M 3.117 2.939 2.666 2.830 2.905 2.979
Us 1.08 M 3.121 2.925 2.707 2.822 2.885 3.003

Water velocity at the end of each pipe, without nozzles, in metres per second.

In distributor A, one nozzle deviated from its target by up to 5.4 percent in the first computation, and by 0.5 percent after the designer’s revision. Distributor B divided the water to within 0.6 percent in its very first computation.

The effort lies elsewhere

From the first drawing to the paper took 54 days, alongside other work. A single specification, the head, took 16 days; the computations for it took half an hour in total. The effort went into reading, asking, checking and deciding. Wrong results, too, came with credible numbers and no error message.

Making errors: 17 of them

From conversations, emails and run logs we reconstructed 17 errors. Four examples:

  • The designer’s file showed the pipe with its wall. What was needed was the space the water fills. What the expert takes for granted, the agent must be told explicitly.
  • Head and flow are specifications. The designer said so three times; twice the work still continued with the old value. The information was there, but it did not govern the action.
  • In one evaluation the last value was read instead of the mean. Since then the mean over the last 300 iterations applies.
  • An earlier version of the paper compared two different quantities in the check against Vienna. The error only surfaced when the institute’s report was read again.

Keeping the lessons: errors become rules

A language model works only with what lies before it in writing. That is an obligation and an opportunity at once: whatever has been written down is also available for the next round. Our rules grew out of this.

  • Hand over the state: every session writes its result to a status file and onto a card. The next one starts there.
  • Anchor corrections: a found error becomes a specification.
  • Separate work and checking: the agent does not grade its own work. A counter-reader, a second AI, checks the reports before they go out, with the task of refuting them.
  • Name the source: every statement says whether it was read, measured, computed or assumed. “I don’t know” is an explicitly allowed answer.
  • Enforce checks: before every computation a program checks whether the model is closed and matches the dimensions. This check cannot be skipped.

The effect: until the end of July, a human was the first to notice the error in four of six cases; from August, in only one of eleven. That is 17 cases and two designs, not statistical proof.

How far AI carries

Computing can be repeated cheaply. Checking becomes cheap too, as far as it can be automated. Human judgement stays expensive, and every process needs an expert with a picture of what good looks like. In our experience AI carries furthest at the start of a development, where questions are open and errors are still cheap to correct. It does not yet carry the way to construction.

Errors remained part of the work to the end. But the AI became increasingly able to find, report and correct its own errors. In our view, the biggest error is therefore to pay no attention to errors.

Josef Erlach is the inventor of System Erlach, Philipp Erlach managing director of Erlach & Erlach GmbH, which holds the rights to the system and licenses it. The numbers apply to this one case.

After the event in Vienna we will publish a report on it here, together with the full content of the talk.

More about the talk at Viennahydro 2026

This post as Markdown