<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://ssun30.github.io/urssi-cantera-matlab-agentic-workflows/feed.xml" rel="self" type="application/atom+xml" /><link href="https://ssun30.github.io/urssi-cantera-matlab-agentic-workflows/" rel="alternate" type="text/html" /><updated>2026-07-31T20:38:51+00:00</updated><id>https://ssun30.github.io/urssi-cantera-matlab-agentic-workflows/feed.xml</id><title type="html">Reliable Agentic Workflows for Sustainable Multi-Language Scientific Software Interfaces</title><subtitle>A URSSI Fellowship project investigating whether agentic AI workflows can reliably maintain and sustain cross-language interfaces for scientific software, using the Cantera MATLAB interface as a case study.</subtitle><author><name>Su Sun</name></author><entry><title type="html">Can AI agents keep scientific software interfaces alive?</title><link href="https://ssun30.github.io/urssi-cantera-matlab-agentic-workflows/2026/08/01/introduction.html" rel="alternate" type="text/html" title="Can AI agents keep scientific software interfaces alive?" /><published>2026-08-01T00:00:00+00:00</published><updated>2026-08-01T00:00:00+00:00</updated><id>https://ssun30.github.io/urssi-cantera-matlab-agentic-workflows/2026/08/01/introduction</id><content type="html" xml:base="https://ssun30.github.io/urssi-cantera-matlab-agentic-workflows/2026/08/01/introduction.html"><![CDATA[<h2 id="the-problem-hiding-in-plain-sight">The problem hiding in plain sight</h2>

<p>Most scientific software you use is not written in the language you call it from.
A combustion researcher writes a few lines of MATLAB; underneath, a large C++
library does the real work. That translation layer — the <strong>interface</strong> — is what
makes powerful compiled libraries usable from high-level languages like Python,
MATLAB, R, or Julia.</p>

<p>Interfaces are quietly essential, and equally fragile. Every time the underlying
library changes its API, or the language’s tooling for generating bindings
shifts, or a packaging system updates, the interface can drift out of sync. The
result is familiar to anyone who maintains scientific software: stale
documentation, examples that no longer run, and releases that break on one
platform but not another. Keeping an interface healthy is labor-intensive,
repetitive, and easy to get wrong — exactly the kind of work that rarely gets
funded and quietly falls behind.</p>

<h2 id="why-cantera">Why Cantera</h2>

<p><a href="https://cantera.org"><strong>Cantera</strong></a> is a widely used open-source toolkit for chemical
kinetics, thermodynamics, and species transport, with applications across
combustion, catalysis, electrochemistry, and atmospheric chemistry.
It is written in C++ and exposes its functionality through interfaces to
Python, MATLAB, C, and Fortran.
Cantera 3.2.0 alone saw over 18,600 conda-forge downloads in six months — this is
software that a lot of people rely on.</p>

<p>I maintain the <a href="https://cantera.org/stable/matlab/index.html"><strong>Cantera MATLAB interface</strong></a>. Over the past three years I have
rebuilt the MATLAB toolbox through <em>two</em> major architectural overhauls, forced by
changes in MATLAB’s interface-generation technology and the sunsetting of legacy
features. Both transitions introduced breaking changes and demanded a great deal
of careful, manual effort. That experience is frustrating — but it also makes me
an ideal test subject. I know exactly how much work this maintenance takes,
because I have done it by hand.</p>

<h2 id="the-question">The question</h2>

<p>Agentic AI tools — systems that can read code, run tests, and iterate toward a
goal — are getting good at exactly the kind of repetitive, context-heavy work
that interface maintenance demands. So the central question of this project is:</p>

<blockquote>
  <p><strong>Under what conditions can agentic tools support <em>release-quality</em> maintenance
of scientific software interfaces, and what recurring failure modes require
automated validation, human review, or both?</strong></p>
</blockquote>

<p>The emphasis on <em>release-quality</em> matters. It is one thing for an AI agent to
produce something that looks plausible; it is another for that output to be
correct enough to ship to thousands of users. The interesting research is not
“can AI write a wrapper?” but “when can we <em>trust</em> it to, and how do we catch it
when we can’t?”</p>

<h2 id="the-game-plan">The game plan</h2>

<p>Over six months, the project pursues four objectives:</p>

<ol>
  <li><strong>Map the maintenance workflow.</strong> Document how changes in the upstream C++
library propagate all the way out to MATLAB-facing wrappers, documentation,
examples, tests, packaging, and releases. You cannot automate what you have
not mapped.</li>
  <li><strong>Prototype AI-assisted workflows.</strong> Evaluate where agentic tools — such as
the MATLAB Agentic Toolkit — can genuinely help: updating wrappers as the
Cantera API evolves, adapting existing C++ documentation and examples into
idiomatic MATLAB, and validating the results.</li>
  <li><strong>Build validation checks.</strong> Automated checks to catch executable failures,
API mismatches, and numerical regressions; structured human review for the
things automation can’t judge — semantic quality, usability, and whether the
code <em>feels</em> like MATLAB.</li>
  <li><strong>Produce reusable community artifacts.</strong> Not just results for Cantera, but a
workflow template, a validation checklist, example CI/test components, a
case-study report, a failure-mode analysis, and a sketch of how this transfers
to other multi-language interfaces.</li>
</ol>

<h2 id="beyond-cantera">Beyond Cantera</h2>

<p>Although Cantera MATLAB is the case study, the goal is transferable practice.
Many education, engineering, and industrial users live in MATLAB, while most
open-source scientific software is built around Python and compiled libraries.
Bridging that gap reliably — and making the bridge <em>maintainable</em> — is a problem
far larger than any one library. As a transferability check, I’ll sketch how the
same workflow could apply to a different domain, such as a Python-to-MATLAB
bridge for climate data access.</p>

<p>I’ll be working in the open in this repository throughout. The next post will
share progress, an interesting finding, or an honest account of something that
went wrong. If any of this is relevant to software you maintain, I’d love your
feedback.</p>

<hr />

<p><em>This work was supported by the US Research Software Sustainability Institute
(URSSI) via grant G-2022-19347 from the Sloan Foundation.</em></p>]]></content><author><name>Su Sun</name></author><category term="urssi" /><category term="cantera" /><category term="matlab" /><category term="agentic-ai" /><category term="scientific-software" /><summary type="html"><![CDATA[The problem hiding in plain sight]]></summary></entry></feed>