Portrait of Abolfazl Ziaeemehr

Abolfazl Ziaeemehr

I build fast, differentiable software for simulating dynamical systems and fitting them to data.

Research engineer at Université de Picardie Jules Verne. Before that, five years at Aix-Marseille University building simulation-based inference with PyTorch and neural density estimators, and GPU simulators in C++ and CuPy. PhD in computational neuroscience.

I am looking for research-engineering, machine-learning and scientific-software roles in industry.

The logistic map x ↦ rx(1 − x), computed in your browser. Point at the diagram, or focus it and use the arrow keys, to pick r. λ is the Lyapunov exponent at that r; above zero the orbit is chaotic.

Software I build

Open-source libraries and apps I designed and maintain.

Virtual Brain Inference (VBI)

Probabilistic inference on whole-brain models, from simulation to posterior.

  • Fast simulators in C++, CuPy (GPU) and Numba, spectral, temporal and connectivity features, and deep neural density estimators that recover model parameters from neuroimaging data.
  • Lead developer; published in eLife (2025) and the Journal of Open Source Software (2026), and available on EBRAINS.

Python, C++, CuPy, Numba, PyTorch, sbi, SWIG

VBI workflow: structural brain data and a model feed a simulator; features of the simulated data train a neural density estimator that returns a posterior over model parameters.
The VBI workflow: simulate, extract features, train an estimator, infer parameters.

JaxCont

Differentiable continuation and bifurcation analysis in JAX.

  • Follows equilibrium and periodic-orbit branches through folds, and detects fold, Hopf, branch-point and period-doubling events.
  • The whole sweep compiles with jit, batches with vmap and differentiates with grad, so bifurcation points can be optimised directly.
  • Checked case by case against MatCont 7.6 and BifurcationKit.

Python, JAX, Matplotlib, pytest, Sphinx

S-shaped equilibrium branch of a cubic system; the JaxCont curve lies on top of the MatCont 7.6 reference points and both find the same two fold points.
A cubic S-curve traced by JaxCont over the MatCont 7.6 reference. Largest branch difference: 1.0×10−4.

lyapax

Lyapunov exponent spectra of ODEs, maps and delay equations, written natively in JAX.

  • Pushes tangent vectors through your own step function with jax.jvp and vmap, so no Jacobian has to be derived by hand.
  • Handles fixed-delay equations and partial spectra, whose cost grows with the number of exponents tracked rather than the system size.
  • Runs unchanged on GPU; benchmarked against ChaosTools.jl and jitcode.

Python, JAX, Diffrax, pytest, Sphinx

Log-log plot of wall-clock time against network size for a dense Kuramoto network. lyapax on GPU stays near one second up to 2000 nodes; lyapax on CPU grows to about 36 seconds; ChaosTools.jl reaches about 175 seconds at 200 nodes.
Full Lyapunov spectrum of a dense Kuramoto network. At 200 nodes lyapax takes about a second on CPU; ChaosTools.jl takes about three minutes.

LitForge

A local-first desktop app for finding, screening and writing from scientific literature.

  • Turns a DOI, a few keywords or a reference list into a ranked reading list from OpenAlex, Crossref and arXiv, with the reason each paper was found.
  • Parses each PDF once into sections, figures, tables and equations, so a language model reads only what a question needs; quoted answers are checked against the source page.
  • Includes a LaTeX writing studio with live preview and one-line installers for macOS, Linux and Windows.

Python, PyMuPDF, Docling, local and cloud LLMs, Typer, Tectonic

LitForge results screen: a ranked list of papers with scores, filters and charts.
Ranked results with scores, filters and charts.

Experience

  1. Oct 2026 – now

    Research engineer

    Ingénieur de recherche, Université de Picardie Jules Verne, Amiens.

  2. Oct 2021 – Sep 2026

    Postdoctoral researcher

    Institut de Neurosciences des Systèmes (Inserm UMR 1106), Aix-Marseille University. Simulation-based inference for virtual brain twins; lead developer of VBI.

  3. Mar – Sep 2021

    Senior scientific developer

    Panoptopia. Python packages for costing and risk management.

  4. Sep 2020 – Mar 2021

    Researcher

    Institute for Research in Fundamental Sciences (IPM), Tehran. Basal ganglia models of Parkinson's disease.

  5. 2014 – 2020

    PhD, computational neuroscience

    Institute for Advanced Studies in Basic Sciences (IASBS). Synchronisation dynamics on undirected and directed hierarchical networks.

Tools I use

Languages
Python, C++, JavaScript, Julia, Bash
Numerical computing
JAX (jit, vmap, automatic differentiation), NumPy, SciPy, Numba, CUDA; solvers for ordinary, stochastic and delay differential equations
Machine learning
PyTorch, simulation-based inference (sbi), neural density estimators, convolutional networks for EEG
Neuroscience data
MNE-Python, The Virtual Brain, NEST, Brian2; EEG, MEG and fMRI
Engineering
Git and GitHub Actions, Linux, packaging and releases on PyPI, pytest, Sphinx and Read the Docs, desktop apps with Tauri, HPC clusters

Selected publications

Papers where the software above was introduced or put to work.