Research
I develop computational methods for engineering design problems with coupled systems, multiple components, and iterative decisions.
My doctoral work focused on robust optimization, surrogate models, and CAD automation for turbocompressors. At ETH Zurich, I work on LLM agents, engineering benchmarks, and reusable optimization solvers.
EPFL · 2020–2024
Robust design of coupled physical systems
Gas-bearing turbocompressors combine aerodynamics, rotordynamics, bearing behavior, thermal effects, component losses, and manufacturing tolerances. Optimizing each subsystem separately can miss interactions that determine whether the complete machine is efficient, stable, and manufacturable.
My doctoral research treated robustness as an optimization objective and combined ensemble neural-network surrogates with evolutionary multi-objective optimization. The methods optimized compressor, rotor, and bearing subsystems together instead of evaluating robustness only after selecting a nominal design.
Simulation and CAD
Learning-enabled simulation and design tools
Optimization is more useful when its outputs can be inspected, modified, and carried into downstream engineering work. ParaturboCAD maps compact design parameters to complete three-dimensional turbocompressor assemblies. DARTS-NetGAB connects learned performance models, interactive exploration, and that CAD workflow in one environment.
Both tools preserve the design parameters used by the models and connect their outputs to geometry that can be inspected or passed to higher-fidelity analysis.

ETH Zurich · Current research
AI methods for engineering design
At the IDEAL Lab, I study how large language models can extract requirements, decompose functions, generate executable models, use engineering tools, retain design state across iterations, and synthesize optimization code.
Our Design-State Graph study compared a nine-role multi-agent system with a generator–reflector baseline across 60 runs. The multi-agent system produced more granular design representations, while requirement coverage remained below 20% and code compatibility was inconsistent.
Source code ↗Journal article ↗Experimental traces ↗
A separate project trains a code model with GRPO to synthesize reusable optimization programs. On the SDS test bed, the trained policy repaired faulty simulated annealing logic found in base-model samples; a fixed generated solver could then be reused unchanged across the test set.
Ongoing work
Current research questions
- Can an AI system preserve requirements and constraints across long, iterative workflows?
- Can generated models execute, connect to trusted tools, and expose their assumptions?
- Can benchmarks measure feasibility and engineering progress rather than linguistic plausibility?
- When can reinforcement learning turn generated code into a solver that is reused across a problem family?
- Where should human judgment and physical verification remain explicit?