Projects
Published research is linked; the applied work is under wraps but described honestly. The tools run in your browser and are free to use.
Research
Efficient swimming kinematics found by solving a generalised eigenvalue problem, rather than by searching the space of motions.
Unsteady potential flow around a deforming body, posed as a generalised eigenvalue problem. The eigenvalues sort into families set by chordwise and spanwise wavenumber, with the imaginary part governing travelling-wave behaviour and the real part growth or decay along the chord, so efficient kinematics can be identified from the spectrum instead of searched for.
Fortran · Python · BLAS / LAPACK
Why the spectrum breaks into branches, answered: approximate each mode by a separable wave described by three numbers, and the eigenvalue follows as a Rayleigh quotient to within about 2%.
The earlier work observed that eigenvalues fall into branches but could not say why. This model approximates each eigenvector by a chordwise travelling wave with an exponential envelope times a spanwise standing wave, reduces the dense hydrodynamic operator to a single scalar, and predicts the eigenvalue directly. The spanwise order being fixed within a branch is the reason branches exist.
Python · NumPy · Vortex lattice method
A memory-augmented, multi-step LLM framework for predicting which early-stage companies become outliers, a rare-event problem with almost no labels.
Chain-of-thought reasoning logs distilled into human-readable IF-THEN rules, with ensemble sampling, simulated reinforcement-learning scoring and a persistent memory. I designed the quantitative evaluation; the combined pipeline improved precision by 54% and accuracy by 50% over the standalone-model baseline.
Python · LLMs · Rare-event evaluation
A two-stage, precision-optimised LLM classifier for quant VC: 24.5% precision against a 2% base rate, a 12.3x uplift. Commendation Award, ICIM 2026, Oxford.
Interpretable classification from LLM token log-probabilities: induce rules, calibrate them with Platt scaling, fuse the evidence additively in log-odds, and choose the threshold for precision rather than accuracy. A compute-aware cascade drops 91.3% of the expensive LLM evaluations before they run.
Python · LLMs · Calibration
Open questions
The eigenmode work produced a clean wave organisation. This asks whether the fluid causes it, or whether any matrix of that shape would do the same.
A toy pencil with every physical quantity stripped out: random two-level Toeplitz coefficients against a convection-type operator. If the branches, the separable eigenvectors and the dispersion relation survive that, they were never hydrodynamics in the first place.
Python · NumPy / SciPy · LAPACK
Applied
A high-order discontinuous Galerkin solver for three-dimensional compressible flow on moving meshes, written in Fortran.
The numerical machinery underneath the doctorate: triangular elements with isoparametric shape functions, arbitrary polynomial order, and arbitrary Lagrangian-Eulerian handling so the mesh can deform with the body without breaking conservation.
Fortran · MPI · Numerical methods
A calibrated, explainable L1–L5 rating for early-stage venture markets. Describe a market in plain English; get a ranked rating you can argue with.
A credit-rating agency for venture markets. One global ranking with exclusive percentile bands, an LLM analyst pipeline that explains the rating, and a separate quantitative model validated against real Crunchbase outcomes rather than against the ratings it accompanies.
Flask · Next.js · BigQuery · Kronos
Monte Carlo simulation and optimisation for venture portfolio construction: how many bets, how correlated, and what that does to the odds of holding zero outliers.
Correlated outcome sampling calibrated against public-market data, with an exhaustive discrete search over sector allocations ranked by Sharpe. Built for Oliver Wyman via Vela; the current work moves it off simulated distributions and onto real private-market data.
Next.js · Python · NumPy · Cloud Functions
Tools
A stamp album page designer that exports true 1:1 vector PDFs. Millimetre-precise, entirely in the browser, nothing uploaded anywhere.
Enter a stamp's real dimensions, choose an archival frame, and export a vector PDF that prints at exactly 1:1 on A4. One module owns every measurement in millimetres, which is the single rule that makes the promise hold.
Next.js · TypeScript · jsPDF · Tailwind