I build engineering software — simulation and control tooling where the numbers have to be right, and where an AI agent can drive the pipeline without being allowed to invent anything.
The projects below share one architecture, deliberately: a stable plugin ABI with host capability negotiation, capability namespaces resolved by prefix dispatch, a YAML DAG pipeline that the CLI and the GUI both execute, and an agent layer with a frozen tool contract, an audit log, per-project token budgets and a bring-your-own-key provider abstraction.
It is one answer, reused. How do you put a language model in front of a numerical pipeline without letting it produce a number? The agent selects and parameterises operations that are correct on their own, and returns handles to computed artefacts — never a value it wrote itself. Adding a whole domain should then require no ABI change: the eighteen additive- manufacturing and marine capabilities in souxmar ride the existing prefix dispatch, and the freeze gates in CI exist to keep that true.
galata — flight dynamics and control-law design. C++20, strict SI, deterministic by policy. Trim, linearisation, and a modal table in which short period, phugoid, Dutch roll, roll subsidence and spiral are identified by eigenvector participation rather than by frequency ordering; frequency response with gain, phase, delay and disk margins.
From a non-dimensional derivative set and some geometry it reproduces the dimensional
derivatives published in Heffley & Jewell, Aircraft Handling Qualities Data, NASA CR-2144
(1972) to 0.26%, and all five classical modes to 1.05%. Both are tests, not prose.
docs/VERIFICATION.md is
generated by the run and CI fails if the committed copy differs — which is why it also records
a 2.04% discrepancy in phugoid damping that I have not resolved, and one case where the
inconsistency is in the published source rather than in the code. Control synthesis and the
nonlinear simulation loop are the point of the project and are not built yet.
salman — a vendor-neutral, text-first, git-native workbench for IEC 61131-3 PLC engineering. 13 Rust crates, ~58,000 lines, ~1,200 tests. Structured Text compiles and runs on a deterministic runtime and its tests run headless in CI with no vendor licence. Eight workflows, including determinism, fuzzing of every parser, a supply-chain audit, and a performance budget that is a measured gate rather than a slogan: cold start, binary size and resident memory are checked per platform and the build fails when one regresses. Early — v0.0.1, Modbus only so far.
souxmar — an open-source CAE platform. ~65,000 lines of C++20, 740 test cases, 25 in-tree plugins, 45 ADRs, a frozen C plugin ABI and a 24-tool agent layer. The part I care about most is the physics: an LPBF thermal history from the Rosenthal moving point source, inherent-strain distortion, FFF interlayer bonding, and marine hull-collapse and seawater-corrosion models — each implemented from a cited source, each carrying its validity envelope and the direction and size of its own error.
blaeu-lib — a plugin-first geospatial editing kernel in TypeScript. ~52,000 lines, 12 packages, 772 tests. The kernel owns an event bus, a plugin registry, two middleware pipelines, a command bus and a feature store, and nothing else; drawing, snapping, topology, undo/redo and even layer types are plugins. One unforked core drives a cadastre tool, an urban-planning tool and a game level editor, with Turkish TUREF / TM27 / TM30 / TM33 belts handled as a projected working CRS.
webmobai — Playwright driven by Claude over MCP: 51 tools, 7 binaries, 5 releases. Its one real idea is that when a selector stops matching, the tool response returns the prior element fingerprint, ranked candidate replacements and the page-state triage — so the model recovers instead of failing. Designing an API for a model is a different job from calling one.
GlowSky — an AI-native workspace for small-molecule drug design, on the same principle: the model reasons and explains, deterministic chemistry computes, and the molecule is a versioned object rather than a generated string.
These are built with heavy AI assistance. At this volume you would assume it anyway, so here is the method instead of a disclaimer.
Every physics and numerics model carries a citation and an explicit statement of what it is not and where it breaks — souxmar's thermal model volunteers that Rosenthal under-predicts LPBF melt-pool depth by 1.5–2× and tells you to calibrate absorptivity against a measured single-track cross-section. Numerical claims are gated by tests against published reference values, and where no published value exists the row reads unvalidated rather than carrying an invented one. Determinism is a tested property: fixed iteration counts are chosen over tolerance-based exits so results are bit-identical, and galata splits that into two tiers because a finite difference divided by h amplifies a libm disagreement by 1/h.
That is the whole trick. The model writes a lot of code. What makes the code worth trusting is that every claim it makes is arranged to fail loudly the moment it stops being true.
All of these are active and none of them are finished. Each repository's status table is the authority on what is built versus scaffolded — where something is a stub or a closed-form demonstration rather than a solver, it says so there. Nothing here is certified for anything. External bug reports are by far the most useful contribution.
Istanbul · @skyhunst


